package cn.iocoder.yudao.module.of.controller.admin.meetingInfo.vo;

import cn.hutool.core.date.DateTime;
import com.alibaba.excel.annotation.ExcelProperty;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer;
import lombok.*;
import java.util.*;
import io.swagger.v3.oas.annotations.media.Schema;
import cn.iocoder.yudao.framework.common.pojo.PageParam;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;

import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;

@Schema(description = "管理后台 - 会议信息分页 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class MeetingInfoPageReqVO extends PageParam {

    @Schema(description = "会议名称", example = "张三")
    private String name;
    @Schema(description = "会议角色", example = "1")
    private Integer role;

    @Schema(description = "会议编号", example = "1")
    private  String code;

    @Schema(description = "会议类型 字典：of_meet_type", example = "1637")
    private Integer typeId;

    @Schema(description = "主持人ID", example = "22318")
    private Long chairpersonId;

    @Schema(description = "主持人名称", example = "张三")
    private String chairpersonName;

    @Schema(description = "参与者")
    private String participants;

    @Schema(description = "会议开始时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private DateTime[] startTime;

    @Schema(description = "会议截止时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private DateTime[] endTime;

    @Schema(description = "时长")
    private Integer timeLong;

    @Schema(description = "会议地点")
    private String address;

    @Schema(description = "会议议程")
    private String agenda;

    @Schema(description = "会议附件")
    private String agendaAttachs;

    @Schema(description = "会议纪要附件")
    private String minutesAttachs;

    @Schema(description = "优先级", example = "22496")
    private Integer priorityId;

    @Schema(description = "优先级名称", example = "王五")
    private String priorityName;

    @Schema(description = "附件ID")
    private String attachs;

    @Schema(description = "提前提醒时间点", example = "1")
    private Integer remindType;

    @Schema(description = "重复周期")
    private Integer repeatPeriod;

    @Schema(description = "创建时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private DateTime[] createTime;

    @Schema(description = "主责部门", example = "20592")
    private Long mainRespDeptId;

    @Schema(description = "主任部门名称", example = "芋艿")
    private String mainRespDeptName;

    @Schema(description = "主责人员", example = "1716")
    private Long mainRespUserId;

    @Schema(description = "会议状态", example = "1")
    private Integer status;

    @Schema(description = "是否有任务", example = "1")
    private Integer isHaveTask;

    @Schema(description = "会议纪要上传时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private DateTime[] minuteCreateTime;
    @Schema(description = "会议创建人")
    private String minuteCreator;

}